package service;

import dao.impl.UserDaoImpl;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Autowired;
import pojo.FastUser;
import pojo.SimplePlayer;

/**
 * @Author: fancyears·milos·malvis
 * @Description:
 * @Date: Created in  2019/4/19 14:53
 * @Modified By:
 */
public class SimplePlayerService {
    //用了这个注解之后，没有setter方法也会进行注入，但是只有setter方法能在xml中定义<property/>
    //    构造函数中的@Autowired
    // 你也可以在构造函数中使用 @Autowired。一个构造函数 @Autowired 说明当创建 bean 时，即使在 XML 文件中没有使用 元素配置 bean ，构造函数也会被自动连接
    //(required = false) 有bean就注入，没有就不注入,但是，当前容器不可以注入自己。这样就会不停的注入自己，陷入死循环。从而找不到要注入的bean
    //默认情况下必须要求依赖对象必须存在，如果要允许null值，可以设置它的required属性为false
    @Autowired(required = false)
    SimplePlayer player;

    private UserDaoImpl userDaoImpl;

    @Getter
    @Setter
    private String serviceName;

    @Autowired
    public SimplePlayerService(UserDaoImpl userDaoImpl) {
        this.userDaoImpl = userDaoImpl;
    }

    public FastUser getPlayerByUser(Long id) {
        return userDaoImpl.getUser(id);
    }

    public void showUser() {
        System.out.println("@Autowired SimplePlayer,player id=" + player.getId());
    }

}
